#include "gestion_personnel.h"

/*
   fonction d'ajout d'une personne à la liste
   in : Personnel liste[], int *n, Personnel p
   out :
*/
void ajouter_personnel(Personnel liste[], int *n, Personnel p)
{
	if ((*n)<MAX)
     {
	liste[*n]= p;
      	(*n)++ ;
     }
}


/*
   fonction de supression à partir d'une matricule
   in : Personnel liste[], long int matricule, int *n
   out :
*/

void supprimer_personnel_matricule(Personnel liste[], long int matricule, int *n)
{
	int i,j ;

for (i=0; i<(*n); i++)
{
   if (matricule== liste[i].matricule)
   {
	for (j=i; j<*n; j++)
     {
	liste[j]=liste[j+1];
     }
     (*n)--;
	printf("%d",*n);
   }
else
printf("cette personne n'existe pas dans la liste(supression par matricule)");
}
}

/*
   fonction de supression à partir du CIN
   in : Personnel liste[], long int CIN, int *n
   out :
*/
void supprimer_personnel_CIN(Personnel liste[], long int CIN, int *n)
{
	int i,j ;

for (i=0; i<(*n); i++)
{
   if (CIN== liste[i].CIN)
   {
	for (j=i; j<*n; j++)
     {
	liste[j]=liste[j+1];
     }
     (*n)--;
	printf("%d",*n);
   }
else
printf("cette personne n'existe pas dans la liste (supression par CIN)");
}
}
/*
   fonction d'affichage
   in : Personnel liste[] int n
   out :
*/
void afficher_liste_personnel(Personnel liste[], int n)
{
int i;
  for (i=0; i<n; i++)
 {afficher_personnel(liste[i]);
  }
}

/*
   fonction d'affichage spécifique à partir d'une matricule
   in : Personnel liste[], long int matricule, int n
   out :
*/
void afficher_personne_matricule(Personnel liste[], long int matricule, int n)
{
int i;
  for (i=0; i<n; i++)
 {if(matricule== liste[i].matricule){
	afficher_personnel(liste[i]);
	break;
	}
  }
}

/*
   fonction d'affichage spécifique à partir d'une CIN
   in : Personnel liste[], long int CIN, int n
   out :
*/
void afficher_personne_CIN(Personnel liste[], long int CIN, int n)
{
int i;
  for (i=0; i<n; i++)
 {if(CIN== liste[i].CIN){
	afficher_personnel(liste[i]);
	break;
	}
  }
}

/*
   fonction de recherche à partir d'une matricule
   in : Personnel liste[], long int matricule, int n
   out :
*/
void recherche_personnel_matricule(Personnel liste[], long int matricule, int n)
{
int i;
  for (i=0; i<n; i++)
 {if(matricule== liste[i].matricule){
	return 1;
	}
  }
	return 0;
}

/*
   fonction de recherche à partir d'une CIN
   in : Personnel liste[], long int CIN, int n
   out :
*/
void recherche_personnel_CIN(Personnel liste[], long int CIN, int n)
{
int i;
  for (i=0; i<n; i++)
 {if(CIN== liste[i].CIN){
	return 1;
	}
  }
	return 0;
}

/*
   fonction de supression générale
   in : Personnel liste[], int n
   out :
*/
void init_liste_personnel(Personnel liste[], int n)
{
if(n!=0)
{
do
{
   supprimer_personnel_CIN (liste, liste[0].CIN, &n);
}while(n>0);
}
}
